const app = getApp()
Page({
  data: {
    StatusBar: app.globalData.StatusBar,
    CustomBar: app.globalData.CustomBar,
    msgList: []
  },
  
  onLoad: function (options) {
    // 监听有没有人给自己发消息
    let that = this
    let msgList = this.data.msgList

    console.log('私聊测试中')
    const db = wx.cloud.database()
    const openid = wx.getStorageSync('openid')
    const watcher = db.collection('chatroom')
      .where({
        toOpenid: openid
      })
      .watch({
        onChange: function (snapshot) {
          console.log('docs\'s changed events', snapshot.docChanges)
          
          // 这一段没人测试过，只有一个手机
          let newMsgs = snapshot.docChanges
          newMsgs.forEach(item=>{
            console.log('item is ', item)
            let flag = true
            for(let i = 0;i<msgList.length;i++){
              // 同一个人发的消息
              if(item.doc.groupId === msgList[i].groupId){
                msgList[i].push(item)
                flag = false
              }
            }
            if(flag){
              msgList.push({
                groupId: item.doc.groupId,
                msgs: [item.doc]
              })
            }
          })

          that.setData({
            msgList
          })

          // console.log('query result snapshot after the event', snapshot.docs)
          // console.log('is init data', snapshot.type === 'init')
        },
        onError: function (err) {
          console.error('the watch closed because of error', err)
        }
      })


    // ...
    // 等到需要关闭监听的时候调用 close() 方法
    // watcher.close()

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    const currentBar = this.getTabBar()
    // app.watch((function (status) {
    //   this.setData({
    //     modalStatus: !this.data.modalStatus
    //   })
    // }).bind(currentBar))

    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      console.log('设置选中项 3')
      this.getTabBar().setData({
        selected: 3
      })
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})